package com.focus.pay.wx.model.order.v3;


import com.focus.pay.wx.model.order.v3.model.AmountModel;
import com.focus.pay.wx.model.order.v3.model.PayerModel;
import com.focus.pay.wx.model.order.v3.model.PromotionDetailModel;
import com.focus.pay.wx.model.order.v3.model.SceneInfoModel;
import lombok.Builder;
import lombok.Data;

import java.util.List;

@Data
@Builder
public class WxPayModelQueryResponse {

    /**
     * 应用ID
     */
    private String appid;

    /**
     * 直连商户号
     */
    private String mchid;

    /**
     * 商户订单号
     */
    private String out_trade_no;

    /**
     * 微信支付订单号
     */
    private String transaction_id;

    /**
     * 交易类型
     * JSAPI：公众号支付
     * NATIVE：扫码支付
     * APP：APP支付
     * MICROPAY：付款码支付
     * MWEB：H5支付
     * FACEPAY：刷脸支付
     */
    private String trade_type;

    /**
     * 交易状态
     * SUCCESS：支付成功
     * REFUND：转入退款
     * NOTPAY：未支付
     * CLOSED：已关闭
     * REVOKED：已撤销（仅付款码支付会返回）
     * USERPAYING：用户支付中（仅付款码支付会返回）
     * PAYERROR：支付失败（仅付款码支付会返回）
     */
    private String trade_state;

    /**
     * 交易状态描述
     */
    private String trade_state_desc;

    /**
     * 付款银行
     */
    private String bank_type;

    /**
     * 附加数据
     */
    private String attach;

    /**
     * 支付完成时间
     */
    private String success_time;

    /**
     * 支付者
     */
    private PayerModel payer;

    /**
     * 订单金额
     */
    private AmountModel amount;

    /**
     * 场景信息
     */
    private SceneInfoModel scene_info;

    /**
     * 优惠功能
     */
    private List<PromotionDetailModel> promotion_detail;
}
